#!/data/data/com.termux/files/usr/bin/bash

#ver=1.1a
echo "版本v1.1a"

###########################################

# echo "本脚本该版本尚未经过测试"
# read -p "确定要继续部署吗？按任意键继续 按ctrl+c退出"

##########################################

echo "仅适用于Termux环境"
echo "仅在SDM710上测试通过过~~"
read -p "确定要部署吗？按任意键继续 按ctrl+c退出"
echo

sed -i 's@^\(deb.*stable main\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/apt/termux-main stable main@' $PREFIX/etc/apt/sources.list

if [ -f "~/.TshockDeploydFiles" ]; then
    echo "检测到您可能已经运行过此脚本，是否继续部署？"
    read -p "按回车键继续,按ctrl + c 退出 "
fi
# 创建标记文件
touch .TshockDeploydFiles

sleep 0.5

# 申请存储权限
FILE=~/storage
if [[ ! -f "$FILE" ]]; then
    clear
    echo "检测到 $FILE 不存在，即将申请存储权限！"
    echo "正在申请存储权限，请点击同意"
    echo "正在申请存储权限，请点击同意"
    echo "正在申请存储权限，请点击同意"
    termux-setup-storage
    read -p "同意完了按回车继续 "
fi

echo "存储权限已经尝试获取，即将继续"

sleep 0.5

# 安装依赖
pkg up -y
pkg upg -y
pkg ins libsqlite aria2 dialog tar unzip wget -y

sleep 0.5

# 函数 下载文件

# 防止部分手机没有Download文件夹
mkdir ~/storage/shared/Download

function DownloadFiles() {
    # 第一个参数是文件URL地址（文件下载好后的路径） 第二个参数为要下载到的文件夹 第三个参数为检测文件参数（指的文件名）
    # ps:第一个参数为$1，第二个参数为$2，第n个参数为$n，以此类推...

    # 询问是否删除
    if [ -f $2$3 ]; then
        read -p " 文件已经下载，是否继续下载？输入y下载，按其他键跳过 : " number
        if [ $number == y ]; then
            # aria2c -x 5 -c --dir $2 $1
            wget -P $2 $1

        fi
    fi

    if [[ ! -f $2$3 ]]; then
        echo "检测到 $3 不存在 即将 下载..."
        echo "你也可以提前（从其他下载快的地方）下载好文件，会自动解压"

        sleep 3
        # aria2c -x 5 -c --dir $2 $1
        wget -P $2 $1
    fi

}

# 在用户存储内创建存放插件、ts配置的文件夹  #
mkdir ~/storage/shared/Tshock
mkdir ~/storage/shared/Tshock/tshock
mkdir ~/storage/shared/Tshock/ServerPlugins


# 添加世界文件夹到用户内部存储
mkdir ~/.local
mkdir ~/.local/share
mkdir ~/.local/share/Terraria
mkdir ~/storage/shared/Tshock/Worlds
rm -rf ~/.local/share/Terraria/Worlds
ln -s ~/storage/shared/Tshock/Worlds ~/.local/share/Terraria/Worlds

# 下载Mono For Termux
DownloadFiles https://ts1-1307802204.cos.ap-guangzhou.myqcloud.com/mono-termux.6.12.0.122-arm64-android24.tar.xz ~/storage/downloads/ mono-termux.6.12.0.122-arm64-android24.tar.xz

echo "即将解压mono-termux... 请稍等"
sleep 2
tar -xvf ~/storage/downloads/mono-termux.6.12.0.122-arm64-android24.tar.xz -C ~/
echo "解压完成。即将配置mono-termux"

sleep 0.5

# 添加Mono到Path里
export PATH="$PATH:$HOME/local/bin"
echo export PATH="$PATH:$HOME/local/bin" >$PREFIX/etc/profile.d/add_mono_to_path.sh
echo "配置完成。即将获取Tshock"
sleep 0.5

echo "使用OSS对象存储下载会对我产生一定费用"
DownloadFiles https://ts1-1307802204.cos.ap-guangzhou.myqcloud.com/TShock4.5.17_Terraria_1.4.3.6.zip ~/storage/downloads/ TShock4.5.17_Terraria_1.4.3.6.zip

# PS:外部存储可以ln -s进来，但是里面想出去就不行了
# 必须Tshock本体在Termux内部，插件等可以放在外部然后链接进来
# 解压tshock
unzip -o ~/storage/downloads/TShock4.5.17_Terraria_1.4.3.6.zip -d ~/tshock_server

sleep 5

###################
# 复制原来的插件到用户存储
cp ~/tshock_server/ServerPlugins/TShockAPI.dll ~/storage/shared/Tshock/ServerPlugins/
# 删除原来的插件文件夹以防出错
rm -rf ~/tshock_server/ServerPlugins
# 软链接用户存储的文件夹到termux空间
ln -s ~/storage/shared/Tshock/ServerPlugins/ ~/tshock_server/ServerPlugins

# 添加Crossplay
echo "下载跨版本支持"
echo "请选择下载来源链接"
echo "输入 \"1\" 为Gitee直链下载 #不推荐"
echo "输入 \"2\" 为Github源文件下载 #访问不了Github的小伙伴可能会下载不了"
echo "配置失败可以手动将跨版本插件放到/sdcard/Tshock/ServerPlugins/ "
read -p "请做出你的选择----:" xuanze
if [ $xuanze == "1" ]; then
    DownloadFiles https://gitee.com/duck114514/Crossplay/raw/main/Crossplay.dll ~/tshock_server/ServerPlugins Crossplay.dll
elif [ $xuanze == "2" ]; then
    DownloadFiles https://github.com/Moneylover3246/Crossplay/releases/download/1.10.2/Crossplay.dll ~/tshock_server/ServerPlugins Crossplay.dll
fi

# 在用户存储内创建存放配置的文件夹 在前面
# 软链接用户存储的文件夹到termux空间

ln -s ~/storage/shared/Tshock/tshock ~/tshock_server/tshock

# 复制所需的lib文件到TShock文件夹
echo " 正在复制所需的lib[libsqlite3.so]文件到TShock[termux空间]文件夹... "
cp $PREFIX/lib/libsqlite3.so ~/tshock_server/libsqlite3.so.0

# 添加 提示
touch ~/storage/shared/Tshock/如需更换Tshock版本，请替换termux目录下的~/tshock_server内的文件而不是这里的！
echo 如需更换Tshock版本，请替换termux目录下的~/tshock_server内的文件而不是这里的！>~/storage/shared/Tshock/如需更换Tshock版本，请替换termux目录下的~/tshock_server内的文件而不是这里的！
# 添加  启动 tshock 的脚本
echo cd ~/tshock_server/ >~/local/bin/tshock
echo mono TerrariaServer.exe -lang 7 >>~/local/bin/tshock
chmod +x ~/local/bin/tshock

echo """PS：
### 重要 ： 不要轻易删除内部存储中的 tshock 文件夹！
### 重要 ： 不要轻易删除内部存储中的 tshock 文件夹！
### 重要 ： 不要轻易删除内部存储中的 tshock 文件夹！
在/sdcard/Tshock/ServerPlugins 内管理插件，
在/sdcard/Tshock/tshock 内管理tshock的配置文件，
在/sdcard/Tshock/server_worlds 内管理tshock读取的世界文件，
配置内网映射 请加我qq群774530405 问群主
你可以自己配置内网映射，详问1651309670
"""

echo "完成，使用“tshock”命令来启动tshock服务器"
echo "如果运行没报错 之后就用这串命令启动了"
echo "如果运行报错 请加QQ群 774530405 录屏询问群主"

